<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/bernd/src/izot/shortstack/api/ShortStackIsiHandlers.c</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.52 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ShortStackIsiHandlers.c"></a>ShortStackIsiHandlers.c</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ShortStackIsiHandlers.c" >ShortStackIsiHandlers.c</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCreatePeriodicMsg" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">IsiCreatePeriodicMsg</a></td><td class=SDescription>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiUpdateUserInterface" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">IsiUpdateUserInterface</a></td><td class=SDescription>Provides status feedback from the ISI engine.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCreateCsmo" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">IsiCreateCsmo</a></td><td class=SDescription>Constructs the IsiCsmoData portion of a CSMO Message.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetPrimaryGroup" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">IsiGetPrimaryGroup</a></td><td class=SDescription>Returns the group ID for the specified assembly.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetAssembly" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">IsiGetAssembly</a></td><td class=SDescription>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNextAssembly" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">IsiGetNextAssembly</a></td><td class=SDescription>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetNvIndex" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">IsiGetNvIndex</a></td><td class=SDescription>Returns the network variable index 0 � 254 of the network variable at the specified offset within the specified assembly, or ISI_NO_INDEX if no such network variable exists.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNextNvIndex" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">IsiGetNextNvIndex</a></td><td class=SDescription>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetPrimaryDid" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">IsiGetPrimaryDid</a></td><td class=SDescription>Returns a pointer to the default primary domain ID for the device.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetWidth" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">IsiGetWidth</a></td><td class=SDescription>Returns the width in the specified assembly.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetConnectionTableSize" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">IsiGetConnectionTableSize</a></td><td class=SDescription>Returns the number of entries in the connection table.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetConnection" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">IsiGetConnection</a></td><td class=SDescription>Returns a pointer to an entry in the connection table.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiSetConnection" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">IsiSetConnection</a></td><td class=SDescription>Updates an entry in the connection table.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetRepeatCount" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">IsiGetRepeatCount</a></td><td class=SDescription>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiQueryHeartbeat" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">IsiQueryHeartbeat</a></td><td class=SDescription>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNvValue" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">IsiGetNvValue</a></td><td class=SDescription>Returns the current value of the specified network variable.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiUserCommand" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">IsiUserCommand</a></td><td class=SDescription>Informs the host application about events happening in the Micro Server.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiIsConnectedReceived" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">IsiIsConnectedReceived</a></td><td class=SDescription>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsConnected" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">IsiQueryIsConnected</a> is received.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiImplementationVersionReceived" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">IsiImplementationVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryImplementationVersion" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">IsiQueryImplementationVersion</a> is received.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiProtocolVersionReceived" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">IsiProtocolVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryProtocolVersion" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">IsiQueryProtocolVersion</a> is received.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiIsRunningReceived" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">IsiIsRunningReceived</a></td><td class=SDescription>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsRunning" class=LFunction id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">IsiQueryIsRunning</a> is received.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiIsBecomingHostReceived" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">IsiIsBecomingHostReceived</a></td><td class=SDescription>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsBecomingHost" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">IsiQueryIsBecomingHost</a> is received.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiApiComplete" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">IsiApiComplete</a></td><td class=SDescription>Indicates that the API function is complete and the result has been received.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCreatePeriodicMsg"></a>IsiCreatePeriodicMsg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>LonBool IsiCreatePeriodicMsg(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</p><h4 class=CHeading>Remarks</h4><p>Because the ISI engine sends periodic outgoing messages at regular intervals, this function allows an application to send a message in one of the periodic message slots.&nbsp; If the application has no message to send, then this function should return FALSE.&nbsp; If it does have a message to send, then this function should return TRUE.&nbsp; To use this function, you must enable application-specific periodic messages using the <b>IsiFlagApplicationPeriodic</b> flag when you call the <a href="ShortStackIsiApi-h.html#IsiStart" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">IsiStart</a> function.&nbsp; The default implementation of <a href="#IsiCreatePeriodicMsg" class=LFunction id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">IsiCreatePeriodicMsg</a> does nothing but return FALSE.&nbsp; You can override this function by providing an application-specific implementation of <a href="#IsiCreatePeriodicMsg" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt1', 'link31')" onMouseOut="HideTip('tt1')">IsiCreatePeriodicMsg</a>.&nbsp; Do not send any messages, start other network transactions, or call other ISI API functions while the <a href="#IsiCreatePeriodicMsg" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt1', 'link32')" onMouseOut="HideTip('tt1')">IsiCreatePeriodicMsg</a> callback is running.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiUpdateUserInterface"></a>IsiUpdateUserInterface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiUpdateUserInterface(</td><td class="PType  prettyprint " nowrap>IsiEvent&nbsp;</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>parameter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Provides status feedback from the ISI engine.</p><h4 class=CHeading>Remarks</h4><p>These events are useful for synchronizing the device�s user interface with the ISI engine.&nbsp; To receive notification of ISI status events, override the <a href="#IsiUpdateUserInterface" class=LFunction id=link33 onMouseOver="ShowTip(event, 'tt2', 'link33')" onMouseOut="HideTip('tt2')">IsiUpdateUserInterface</a> callback function.&nbsp; The default implementation of <a href="#IsiUpdateUserInterface" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt2', 'link34')" onMouseOut="HideTip('tt2')">IsiUpdateUserInterface</a> does nothing.&nbsp; The ISI engine calls this function with the event parameter set to one of the values defined for the <a href="ShortStackIsiTypes-h.html#IsiEvent" class=LType id=link35 onMouseOver="ShowTip(event, 'tt30', 'link35')" onMouseOut="HideTip('tt30')">IsiEvent</a> enumeration.&nbsp; Some of these events carry a meaningful value in the parameter argument, as detailed in the <a href="ShortStackIsiTypes-h.html#IsiEvent" class=LType id=link36 onMouseOver="ShowTip(event, 'tt30', 'link36')" onMouseOut="HideTip('tt30')">IsiEvent</a> definition.&nbsp; You can use the event parameter passed to the <a href="#IsiUpdateUserInterface" class=LFunction id=link37 onMouseOver="ShowTip(event, 'tt2', 'link37')" onMouseOut="HideTip('tt2')">IsiUpdateUserInterface</a> callback function to track the state of the ISI engine.&nbsp; This is a simple way to determine which ISI function calls make sense at any time, and which ones don�t.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCreateCsmo"></a>IsiCreateCsmo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiCreateCsmo(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs the IsiCsmoData portion of a CSMO Message.</p><h4 class=CHeading>Remarks</h4><p>The pCsmo parameter is a pointer to an <b>IsiCsmoData</b> structure that is filled by this function call.&nbsp; This function is called by the ISI engine prior to sending a CSMO message.&nbsp; This function has the same effect if the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetPrimaryGroup"></a>IsiGetPrimaryGroup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetPrimaryGroup(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the group ID for the specified assembly.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns ISI_DEFAULT_GROUP (128).&nbsp; This function is only required if the default implementation, or the forwardee, of <a href="#IsiCreateCsmo" class=LFunction id=link38 onMouseOver="ShowTip(event, 'tt3', 'link38')" onMouseOut="HideTip('tt3')">IsiCreateCsmo</a> is in use.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetAssembly"></a>IsiGetAssembly</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</p><h4 class=CHeading>Remarks</h4><p>The function returns ISI_NO_ASSEMBLY (0xFF) if no such assembly exists, or an application-defined assembly number (0 to 254).&nbsp; The automatic parameter specifies a manually initiated enrollment (automatic = FALSE) or an automatically initiated enrollment (automatic = TRUE).&nbsp; The automatic flag is TRUE both for initial automatic enrollment messages (CSMA) or reminders that relate to a possibly new connection (CSMR).&nbsp; Automatic enrollment reminder messages that relate to existing connections on the local device are not passed to the application.&nbsp; The pointer provided with the <b>pCsmo</b> parameter is only valid for the duration of this function call.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNextAssembly"></a>IsiGetNextAssembly</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNextAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</p><h4 class=CHeading>Remarks</h4><p>The function returns ISI_NO_ASSEMBLY (0xFF) if there are no such assemblies, or an application-specific assembly number (1 to 254).&nbsp; This function is called after calling the <a href="#IsiGetAssembly" class=LFunction id=link39 onMouseOver="ShowTip(event, 'tt5', 'link39')" onMouseOut="HideTip('tt5')">IsiGetAssembly</a> function, unless <a href="#IsiGetAssembly" class=LFunction id=link40 onMouseOver="ShowTip(event, 'tt5', 'link40')" onMouseOut="HideTip('tt5')">IsiGetAssembly</a> returned ISI_NO_ASSEMBLY.&nbsp; The automatic parameter specifies a manually initiated enrollment (automatic = FALSE) or an automatically initiated enrollment (automatic = TRUE).&nbsp; The automatic flag is TRUE both for initial automatic enrollment messages (CSMA) or reminders that relate to a possibly new connection (CSMR).&nbsp; Automatic enrollment reminder messages that relate to existing connections on the local device are not passed to the application.&nbsp; The pointer provided with the <b>pCsmo</b> parameter is only valid for the duration of this function call.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNvIndex"></a>IsiGetNvIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the network variable index 0 � 254 of the network variable at the specified offset within the specified assembly, or ISI_NO_INDEX if no such network variable exists.</p><h4 class=CHeading>Remarks</h4><p>This function must return at least one valid network variable index for each assembly number returned by <a href="#IsiGetAssembly" class=LFunction id=link41 onMouseOver="ShowTip(event, 'tt5', 'link41')" onMouseOut="HideTip('tt5')">IsiGetAssembly</a> and <a href="#IsiGetNextAssembly" class=LFunction id=link42 onMouseOver="ShowTip(event, 'tt6', 'link42')" onMouseOut="HideTip('tt6')">IsiGetNextAssembly</a>.&nbsp; The <b>offset</b> parameter is zero-based and relates to the selector number offset that is used with the enrollment of this assembly.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNextNvIndex"></a>IsiGetNextNvIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNextNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>previous</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</p><h4 class=CHeading>Remarks</h4><p>Returns ISI_NO_INDEX if there are no more network variables, or a valid network variable index (1 to 254) otherwise.&nbsp; The <b>offset</b> parameter is zero-based and relates to the selector number offset within the assembly that is used with the enrollment of this assembly.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetPrimaryDid"></a>IsiGetPrimaryDid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned* IsiGetPrimaryDid(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pointer to the default primary domain ID for the device.</p><h4 class=CHeading>Remarks</h4><p>The function also provides the domain ID length in the location provided by the <b>pLength</b> parameter.&nbsp; Domain IDs can be 1, 3, or 6 bytes long; the 0-length domain ID cannot be used for the primary domain.&nbsp; The number of bytes provided through the <b>pLength</b> output parameter must be valid in the returned pointer.&nbsp; You can override this function to override the ISI standard domain ID value.&nbsp; This function is only used to create a non-ISI system.&nbsp; Both length and value of the domain ID provided are considered constant when the ISI engine is running.&nbsp; To change the primary domain ID at runtime using the <a href="#IsiGetPrimaryDid" class=LFunction id=link43 onMouseOver="ShowTip(event, 'tt9', 'link43')" onMouseOut="HideTip('tt9')">IsiGetPrimaryDid</a> callback, stop and re-start the ISI engine.</p><p>The ISI domain is specific to your network, and typically assigned a quasi- unique 6 byte domain ID value from your ISI Domain Address Server (DAS).&nbsp; Many ISI networks do not require an ISI Domain Address Server, however, but use a domain ID assigned by you instead.&nbsp; This is implemented with the this callback.&nbsp; ISI uses a default 3-byte domain ID of &ldquo;IS\0&rdquo;.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetWidth"></a>IsiGetWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetWidth(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the width in the specified assembly.</p><h4 class=CHeading>Remarks</h4><p>The width is equal to the number of network variable selectors associated with the assembly.&nbsp; Applications must override the <a href="#IsiGetWidth" class=LFunction id=link44 onMouseOver="ShowTip(event, 'tt10', 'link44')" onMouseOut="HideTip('tt10')">IsiGetWidth</a> function to support compound assemblies.&nbsp; This function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetConnectionTableSize"></a>IsiGetConnectionTableSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetConnectionTableSize(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of entries in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns the number of entries in the built-in connection table.&nbsp; You can override this function to support an application-specific implementation of the ISI connection table.&nbsp; You can use this function to provide a larger connection table or to store the connection table outside of the Smart Transceiver address space.&nbsp; The ISI library supports connection tables with 0 to 254 entries.&nbsp; The connection table size is considered constant following a call to <a href="ShortStackIsiApi-h.html#IsiStart" class=LFunction id=link45 onMouseOver="ShowTip(event, 'tt29', 'link45')" onMouseOut="HideTip('tt29')">IsiStart</a>; you must first stop, then re-start the ISI engine if the connection table size changes dynamically.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetConnection"></a>IsiGetConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>IsiConnection* IsiGetConnection(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pointer to an entry in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns a pointer to a built-in connection table.&nbsp; You can override this function to provide an application-specific means of accessing the connection table, or to provide an application table of a different size.&nbsp; The ISI engine requests only one connection table entry at a time, and makes no assumption about the pointer value.&nbsp; This function is called frequently, and should return as soon as possible.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiSetConnection"></a>IsiSetConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiSetConnection(</td><td class="PType  prettyprint " nowrap>IsiConnection&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pConnection,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates an entry in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation updates an entry in the built-in connection table.&nbsp; You can override this function to provide an application-specific means of accessing the connection table, or to provide an application table of a different size.&nbsp; The ISI engine requests only one connection table entry at a time, and makes no assumption about the pointer value.&nbsp; This function is called frequently, and should return as soon as possible.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetRepeatCount"></a>IsiGetRepeatCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned IsiGetRepeatCount(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</p><h4 class=CHeading>Remarks</h4><p>The repeat counter value is considered constant for the lifetime of the application, and will only be queried: when the device powers up the first time after a new application image has been loaded, and every time <a href="ShortStackIsiApi-h.html#IsiReturnToFactoryDefaults" class=LFunction id=link46 onMouseOver="ShowTip(event, 'tt31', 'link46')" onMouseOut="HideTip('tt31')">IsiReturnToFactoryDefaults</a> runs.&nbsp; Only repeat counts of 1, 2 or 3 are supported.&nbsp; This function has no affect on ISI messages.&nbsp; This function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryHeartbeat"></a>IsiQueryHeartbeat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>LonBool IsiQueryHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</p><h4 class=CHeading>Remarks</h4><p>When network variable heartbeat processing is enabled and the ISI engine is running, the engine queries bound output network variables using this callback (including any alias connections) whenever the heartbeat is due.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNvValue"></a>IsiGetNvValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned* IsiGetNvValue(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>nvIndex,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the current value of the specified network variable.</p><h4 class=CHeading>Remarks</h4><p>This callback returns the value of the network variable specified by the index nvIndex.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiUserCommand"></a>IsiUserCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiUserCommand(</td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param1,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param2,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>void&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pData,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>length</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Informs the host application about events happening in the Micro Server.</p><h4 class=CHeading>Remarks</h4><p>Some custom Micro Servers may need to inform the host application of events known to the custom Micro Server alone.&nbsp; This callback can be invoked by such Micro Servers for that purpose.&nbsp; If the host application can&rsquo;t process such an event, it returns a NACK to the Micro Server.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsConnectedReceived"></a>IsiIsConnectedReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsConnectedReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isConnected</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsConnected" class=LFunction id=link47 onMouseOver="ShowTip(event, 'tt19', 'link47')" onMouseOut="HideTip('tt19')">IsiQueryIsConnected</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the query was made.</td></tr><tr><td class=CDLEntry>isConnected</td><td class=CDLDescription>boolean indicating the connection status of the assembly.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="ShortStackIsiApi-h.html#IsiQueryIsConnected" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt19', 'link48')" onMouseOut="HideTip('tt19')">IsiQueryIsConnected</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiImplementationVersionReceived"></a>IsiImplementationVersionReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiImplementationVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryImplementationVersion" class=LFunction id=link49 onMouseOver="ShowTip(event, 'tt21', 'link49')" onMouseOut="HideTip('tt21')">IsiQueryImplementationVersion</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>version</td><td class=CDLDescription>version number of the ISI implementation.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="ShortStackIsiApi-h.html#IsiQueryImplementationVersion" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt21', 'link50')" onMouseOut="HideTip('tt21')">IsiQueryImplementationVersion</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiProtocolVersionReceived"></a>IsiProtocolVersionReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiProtocolVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryProtocolVersion" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt23', 'link51')" onMouseOut="HideTip('tt23')">IsiQueryProtocolVersion</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>version</td><td class=CDLDescription>version number of the ISI protocol being implemented.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="ShortStackIsiApi-h.html#IsiQueryProtocolVersion" class=LFunction id=link52 onMouseOver="ShowTip(event, 'tt23', 'link52')" onMouseOut="HideTip('tt23')">IsiQueryProtocolVersion</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsRunningReceived"></a>IsiIsRunningReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsRunningReceived(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isRunning</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsRunning" class=LFunction id=link53 onMouseOver="ShowTip(event, 'tt25', 'link53')" onMouseOut="HideTip('tt25')">IsiQueryIsRunning</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>isRunning</td><td class=CDLDescription>boolean indicating whether the ISI engine is running or not.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="ShortStackIsiApi-h.html#IsiQueryIsRunning" class=LFunction id=link54 onMouseOver="ShowTip(event, 'tt25', 'link54')" onMouseOut="HideTip('tt25')">IsiQueryIsRunning</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsBecomingHostReceived"></a>IsiIsBecomingHostReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsBecomingHostReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isBecomingHost</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="ShortStackIsiApi-h.html#IsiQueryIsBecomingHost" class=LFunction id=link55 onMouseOver="ShowTip(event, 'tt27', 'link55')" onMouseOut="HideTip('tt27')">IsiQueryIsBecomingHost</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>the assembly for which the query was made.</td></tr><tr><td class=CDLEntry>isBecomingHost</td><td class=CDLDescription>boolean indicating whether the assembly in question is becoming a host.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="ShortStackIsiApi-h.html#IsiQueryIsBecomingHost" class=LFunction id=link56 onMouseOver="ShowTip(event, 'tt27', 'link56')" onMouseOut="HideTip('tt27')">IsiQueryIsBecomingHost</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiApiComplete"></a>IsiApiComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiApiComplete(</td><td class="PType  prettyprint " nowrap>IsiDownlinkRpcCode&nbsp;</td><td class="PParameter  prettyprint " nowrap>code,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameter  prettyprint " nowrap>sequence,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>success</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Indicates that the API function is complete and the result has been received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>code</td><td class=CDLDescription>downlink function that just completed.</td></tr><tr><td class=CDLEntry>sequence</td><td class=CDLDescription>sequence number of the downlink message.</td></tr><tr><td class=CDLEntry>success</td><td class=CDLDescription>boolean indicating whether the function completed successfully.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This function is called when an API function completes.&nbsp;  You generally should not call an ISI API until the previous one completes.&nbsp;  In some cases if you violate this rule, the ShortStack Micro Server could return a NACK, and this callback will be invoked with a value of FALSE for the &ldquo;success&rdquo; parameter.&nbsp;  Note that the Micro Server is not guaranteed to return ACKs and NACKs in order.</p></div></div></div>

</div><!--Content-->


<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MEntry><div class=MFile><a href="ldv-h.html">ldv.h</a></div></div><div class=MEntry><div class=MFile><a href="LonPlatform-h.html">LonPlatform.h</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackApi-h.html">SHORTSTACK API</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiApi-h.html">SHORTSTACK ISI API</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiTypes-h.html">SHORTSTACK ISI TYPES</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackTypes-h.html">SHORTSTACK TYPES</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackApi-c.html">ShortStackApi.c</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackHandlers-c.html">ShortStackHandlers.c</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiApi-c.html">ShortStackIsiApi.c</a></div></div><div class=MEntry><div class=MFile id=MSelected>ShortStackIsiHandlers.c</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Macros.html">Macros</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Types.html">Types</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Macros">Macros</option><option value="Types">Types</option></select></div></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>LonBool IsiCreatePeriodicMsg(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiUpdateUserInterface(</td><td class="PType  prettyprint " nowrap>IsiEvent&nbsp;</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>parameter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Provides status feedback from the ISI engine.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiCreateCsmo(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs the IsiCsmoData portion of a CSMO Message.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetPrimaryGroup(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the group ID for the specified assembly.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNextAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the network variable index 0 � 254 of the network variable at the specified offset within the specified assembly, or ISI_NO_INDEX if no such network variable exists.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetNextNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>previous</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned* IsiGetPrimaryDid(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a pointer to the default primary domain ID for the device.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetWidth(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the width in the specified assembly.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiGetConnectionTableSize(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of entries in the connection table.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>IsiConnection* IsiGetConnection(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a pointer to an entry in the connection table.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiSetConnection(</td><td class="PType  prettyprint " nowrap>IsiConnection&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pConnection,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Updates an entry in the connection table.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned IsiGetRepeatCount(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>LonBool IsiQueryHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>const unsigned* IsiGetNvValue(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>nvIndex,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the current value of the specified network variable.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>unsigned IsiUserCommand(</td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param1,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param2,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>void&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pData,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>length</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Informs the host application about events happening in the Micro Server.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsConnectedReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isConnected</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsConnected is received.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsConnected(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the connection status of an assembly.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiImplementationVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryImplementationVersion is received.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryImplementationVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the version number of the ISI implementation.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiProtocolVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryProtocolVersion is received.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryProtocolVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the protocol version of the ISI implementation.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsRunningReceived(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isRunning</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsRunning is received.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsRunning(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the state of the ISI engine.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiIsBecomingHostReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isBecomingHost</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsBecomingHost is received.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsBecomingHost(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries whether the specified assembly is a host for an enrollment.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>void IsiApiComplete(</td><td class="PType  prettyprint " nowrap>IsiDownlinkRpcCode&nbsp;</td><td class="PParameter  prettyprint " nowrap>code,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameter  prettyprint " nowrap>sequence,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>success</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Indicates that the API function is complete and the result has been received.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStart(</td><td class="PType  prettyprint " nowrap>IsiType&nbsp;</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiStartFlags&nbsp;</td><td class="PParameter  prettyprint " nowrap>flags</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts the ISI engine.</div></div><div class=CToolTip id="tt30"><div class=CType>Enumeration for different event types.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiReturnToFactoryDefaults(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Restores the device�s self-installation data to factory defaults.</div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>